1. Technical Field
The present invention relates to avoiding malicious software in general, and, in particular, to a method for preventing malicious software from execution within a computer system.
2. Description of Related Art
Malicious software, such as computer viruses, can enter a computer system in many ways. For example, they can enter a computer system via a disk that is to be inserted into the computer system or they can enter the computer system via an email that is to be opened by a user of the computer system. Malicious software can cause problems to the computer system if they are executed within the computer system. For example, computer security may be compromised or files within the computer system may be destroyed.
Certain types of malicious software can easily be detected using simple detection techniques, such as scanning for a search string. However, this type of detection process can also easily be subverted by converting malicious code via compression or encryption, thus bypassing scanning filters. Another approach to detecting malicious software is to run a program while attempting to intercept malicious actions during program execution. This technique, which is known as behavior blocking, has a number of disadvantages. Despite of the attempt to intercept malicious actions, the program may nevertheless cause harm to the computer system. Furthermore, the behavior blocking mechanism typically cannot view an entire log of actions in making a blocking determination. Hence, the behavior blocking mechanism may make sub-optimal blocking decisions, which means harmless programs may be blocked while harmful programs may be allowed to execute.
Yet another approach to detecting malicious software is to emulate suspect code within an insulated environment of a computer system so that the computer system is protected from malicious actions of the suspect code. One drawback of emulation is that while it may protect parts of the computer system from virus attacks, it is not itself protected. Additionally, data can be infected, which leads to a break in the isolation environment.
Consequently, it would be desirable to provide an improved method for preventing malicious software from execution within a computer system.